package com.gotop.mapper.system;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gotop.entity.system.Menu;
import com.gotop.vo.system.MenuVO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * Mapper 接口
 *
 * @author superfish
 */
@Mapper
@Repository
public interface MenuDao extends BaseMapper<Menu> {

    /**
     * 全部查询
     *
     * @param menu
     * @returnMenuServiceImpl
     */
    List<Menu> list(Map<String, Object> menu);

    /**
     * 树形结构
     *
     * @return
     */
    List<MenuVO> tree();

    /**
     * 授权树形结构
     *
     * @return
     */
    List<MenuVO> grantTree();

    /**
     * 授权树形结构
     *
     * @return
     */
    List<MenuVO> grantTreeByRole(List<Long> roleId);

    /**
     * 所有菜单
     *
     * @return
     */
    List<Menu> allMenu();

    /**
     * 权限配置菜单
     *
     * @param roleId
     * @return
     */
    List<Menu> roleMenu(List<Long> roleId);

    /**
     * 菜单树形结构
     *
     * @param roleId
     * @return
     */
    List<Menu> routes(List<Long> roleId);

    /**
     * 按钮树形结构
     *
     * @param roleId
     * @return
     */
    List<Menu> buttons(List<Long> roleId);
}
